<!-- $Id: taxonomy_csv.help.fr.html,v 3.1.2.8 2010/09/13 20:14:06 danielkm Exp $ -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr" dir="ltr">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Aide de Taxonomy CSV import/export</title>
  <style type="text/css"><!--
    h3 {
      font: bold 120% sans-serif;
    }
    h4 {
      font: bold 100% sans-serif;
      margin-top: 24px;
    }
    h5 {
      font: italic 100% sans-serif;
      margin-top: 8px;
    }
    table {
      width: 80%;
    }
    table,
    div.codeblock {
      border: 1px solid rgb(204, 204, 204);
      padding: 4px;
      background-color: rgb(238, 238, 238);
      margin: 6px 96px 12px 24px;
    }
  --></style>
</head>
<body>
<p>Ce module permet d'importer/exporter des taxinomies, des structures ou de simples listes de termes dans/depuis un vocabulaire à partir/vers d'un fichier <a href="http://fr.wikipedia.org/wiki/Comma-separated_values" title="Définition Wikipedia">CSV</a>, d'une url ou d'un texte copié-collé.</p>
<p>Le format csv correspond à une simple liste de valeurs séparées par un séparateur, souvent une virgule(<strong><code>,</code></strong>) ou un point-virgule (<strong><code>;</code></strong>), et des caractères de délimitation, souvent les guillemets (<strong><code>"</code></strong>). Si vous ne savez pas comment créer un fichier CSV, vous pouvez utiliser <a href="http://www.openoffice.org" title="OpenOffice.org">OpenOffice Calc</a> ou un autre tableur pour exporter vos données dans un fichier CSV.</p>
<p>Des formats d'import ou d'export spécifiques peuvent être ajoutés simplement par un mécanisme d'extensions (sinon, demander à l'auteur !).</p>
  <div class="toc">
    <h2 class="nonum"><a id="contents" name="contents">Sommaire</a></h2>
    <ol class="toc">
      <li>
        <a href="#formats">Formats</a>
        <ol class="toc">
          <li>
            <a href="#alone_terms">Termes seuls</a>
          </li>
          <li>
            <a href="#def_links">Champs et liens des termes</a>
          </li>
          <li>
            <a href="#flat">Termes (vocabulaire plat)</a>
          </li>
          <li>
            <a href="#tree_structure">Structure hiérarchique ou en tableau d'un terme par ligne</a>
          </li>
          <li>
            <a href="#polyhierarchy">Structure polyhiérarchique</a>
          </li>
          <li>
            <a href="#parents">Parents de premier niveau</a>
          </li>
          <li>
            <a href="#children">Enfants de premier niveau</a>
          </li>
          <li>
            <a href="#relations">Termes associés (termes connexes)</a>
          </li>
          <li>
            <a href="#synonyms">Termes synonymes</a>
          </li>
          <li>
            <a href="#fields">Définitions complètes de termes</a>
          </li>
          <li>
            <a href="#descriptions">Descriptions des termes</a>
          </li>
          <li>
            <a href="#weights">Poids des termes</a>
          </li>
          <li>
            <a href="#taxonomy_manager">Taxonomy manager</a>
          </li>
          <li>
            <a href="#geotaxonomy">Geotaxonomy</a>
          </li>
        </ol>
      </li>
      <li>
        <a href="#import">Import</a>
        <ol class="toc">
          <li>
            <a href="#import_content">Que voulez-vous importer ?</a>
          </li>
          <li>
            <a href="#source">Où se trouvent les termes à importer ?</a>
          </li>
          <li>
            <a href="#file_format">Quel est le format de la source ?</a>
          </li>
          <li>
            <a href="#destination">Quel est le vocabulaire de destination ?</a>
          </li>
          <li>
            <a href="#import_options">Quand un terme existe, que faire avec ?</a>
          </li>
          <li>
            <a href="#info_process">Infos sur le traitement et import de grosses taxinomies</a>
          </li>
        </ol>
      </li>
      <li>
        <a href="#export">Export</a>
      </li>
      <li>
        <a href="#import_api">Taxonomy csv import API</a>
      </li>
      <li>
        <a href="#advanced_options">Paramètres avancés et conseils</a>
        <ol class="toc">
          <li>
            <a href="#permissions">Permissions</a>
          </li>
          <li>
            <a href="#other_hints">Autres conseils</a>
          </li>
        </ol>
      </li>
    </ol>
  </div>
<h3 id="formats"><a href="#contents">1. Formats</a></h3>
  <p>Plusieurs formats peuvent être utilisés pour importer ou exporter un vocabulaire. Le plus souvent, la première colonne correspond au nom du terme. Vous pouvez indiquer comment les colonnes suivantes doivent être exportées ou importées.<br />
  La structure du vocabulaire doit être importée en premier lorsque plusieurs fichiers sont utilisés. Il faut donc choisir d'abord les options Champs et liens, plat, structure, polyhiérarchie, premier niveau de parents ou d'enfants avant les options relations, descriptions, etc.</p>
  <h4 id="alone_terms"><a href="#contents">1. Termes seuls</a></h4>
    <p>Les termes sont importés comme de simples termes. Les colonnes suivantes sont ignorées. Exemple :</p>
      <div class="codeblock"><ul>
        <li><code>Diamant</code></li>
        <li><code>Or</code></li>
        <li><code>Bois</code></li>
      </ul></div>
  <h4 id="def_links"><a href="#contents">2. Champs et liens des termes</a></h4>
    <p>Cette option permet d'importer la définition complète d'un terme ainsi que ses liens avec les autres termes.</p>
    <p>Le format est : nom du terme, identifiant du terme, identifiant du vocabulaire, description, poids, nombre de synonymes, nombre de parents de premier niveau, nombre d'enfants de premier niveau, nombre de termes associés, liste des synonymes, liste des identifiants des parents de premier niveau, liste des identifiants des enfants de premier niveau, liste des identifiants des termes associés, liste des identifiants des vocabulaires des termes associés.</p>
    <p>Seul le nom doit être défini, les autres valeurs pouvant être vides. Les identifiants ne sont pas les numéros internes des terme ou des vocabulaires, mais des identifiants uniques. Ils peuvent être des noms ou des nombres. Dans la plupart des cas, vous pouvez simplement utiliser les véritables noms. En fait, les identifiants doivent être spécifiques seulement pour les nomùs de termes doublons de manière à identifier chaque élément. De ce fait, pour les doublons, vous pouvez utiliser le nom plus un nombre. L'identifiant du terme principal est nécessaire seulement lorsque le terme est un doublon.</p>
    <p>Exemple avec un synonyme, deux parents directs, pas d'enfants et une relation avec un terme d'un autre vocabulaire :</p>
      <div class="codeblock"><ul>
        <li><code>Drupal, , Gestion des connaissances, "Créé par Dries Buytaert en 1998", 10, 1, 2, 0, 1, Drop, CMS, CMF, Source ouverte, Logiciel</code></li>
        <li><code>Terme 1, , Vocabulaire 1, "Description du terme 1", 10, 1, 2, 0, 1, Synonyme 1, Parent direct 1, Parent direct 2, Terme associé 1, Vocabulaire du terme associé 1</code></li>
      </ul></div>
    <p>Avec ce format, le vocabulaire de destination est determiné par la source. Si la troisième colonne est vide, un nouveau vocabulaire sera créé. S'il s'agit d'un nom ou d'un nombre, un vocabulaire sera créé s'il n'existe pas. Ce processus est également utilisé pour les termes associés. Si le vocabulaire d'un terme associé n'est pas défini, le vocabulaire du terme principal est utilisé. Attention : il est déconseillé de modifier le vocabulaire d'un terme qui a des liens.</p>
    <p>Une option plus simple, <a href="#fields"><code>Définitions complètes de termes</code></a>, permet d'importer les seules définitions.</p>
  <h4 id="flat"><a href="#contents">3. Termes (vocabulaire plat)</a></h4>
    <p>Cette option permet d'importer un ensemble de termes de manière à créer un vocabulaire plat. Tous les éléments du fichier seront importés en tant que termes. Exemple :</p>
      <div class="codeblock"><ul>
        <li><code>Vétements, Arbres, Maisons</code></li>
        <li><code>Paris, Drupal</code></li>
      </ul></div>
  <h4 id="tree_structure"><a href="#contents">4. Structure hiérarchique ou en tableau d'un terme par ligne</a></h4>
    <p>Cette option permet de créer la structure arborescente d'un vocabulaire (géographie, classification...). Pour importer une hiérarchie à plusieurs parents, il est préférable d'utiliser les importations "Polyhiérarchie", "Enfants de premier niveau" ou "Parents de premier niveau".<br />
    Votre fichier peut être écrit selon deux schémas et un mixte.<br />
    <h5 id="tree_structure_full_line"><a href="#contents">Premier schéma: tous les ancètres d'un terme</a></h5>
      Dans le premier schéma, vous devez indiquer tous les ancêtres de chaque terme. La deuxième colonne sera importée comme un enfant du terme de la première colonne. La troisième colonne sera importée comme un enfant du terme de la deuxième colonne et ainsi de suite. Les lignes peuvent avoir n'importe quel ordre. Exemple:</p>
        <div class="codeblock"><ul>
          <li><code>Animal,Mammifère,Baleine</code></li>
          <li><code>Animal,Mammifère,Singe</code></li>
        </ul></div>
      Attention : lorsqu'un enfant est ajouté ou mis à jour, la ligne doit contenir tous ses ancêtres. Ainsi, une troisième ligne pourrait être :
        <div class="codeblock"><ul>
          <li><code>Animal,Mammifère,Humain</code></li>
        </ul></div>
      mais <strong>pas</strong> :
        <div class="codeblock"><ul>
          <li><code>Mammifère,Humain</code></li>
        </ul></div>
      car dans ce cas, &lt; <code>Mammifère</code> &gt; serait importé comme terme de premier niveau et non comme un enfant du terme &lt; <code>Animal</code> &gt; comme dans la ligne précédente.
    <h5 id="tree_structure_partial_line"><a href="#contents">Second schéma: structure en tableau d'un terme par ligne</a></h5>
      Dans le schéma "structure en tableau d'un terme par ligne", vous pouvez importer les termes sans répéter tous les ancêtres si la ligne précédente les contient. Ce mode est très pratique pour importer une structure depuis un tableur. Il permet également de construire facilement une structure et de télécharger un fichier plus léger. Votre hiérarchie peut être présentée de la façon suivante :<br />
        <code><table border="1">
          <tr><td>Monde</td><td></td><td></td><td></td></tr>
          <tr><td></td><td>Asie</td><td></td><td></td></tr>
          <tr><td></td><td></td><td>Japon</td><td></td></tr>
          <tr><td></td><td></td><td></td><td>Tokyo</td></tr>
          <tr><td></td><td></td><td>Corée</td><td></td></tr>
          <tr><td></td><td></td><td></td><td>Séoul</td></tr>
        </table></code>
        <br />
      Ainsi, les premières lignes de votre fichier csv seraient :
        <div class="codeblock"><ul>
          <li><code>Monde</code></li>
          <li><code>,Asie</code></li>
          <li><code>,,Japon</code></li>
          <li><code>,,,Tokyo</code></li>
          <li><code>,,Corée</code></li>
          <li><code>,,,Séoul</code></li>
        </ul></div>
        <div class="codeblock"><ul>
          <li><code>,Europe</code></li>
          <li><code>,,France</code></li>
          <li><code>,,,Paris</code></li>
        </ul></div>
        <div class="codeblock"><ul>
          <li><code>,,Italie,Abruzzes,Chieti,Chieti</code></li>
          <li><code>,,,,,Civitaluparella</code></li>
        </ul></div>
      &lt; <code>Paris</code> &gt; sera automatiquement ajouté comme enfant du terme &lt; <code>France</code> &gt;.
    <h5 id="tree_structure_mixed_line"><a href="#contents">Schema mixte</a></h5>
      <p>Les lignes peuvent être partielles. Ainsi, la ligne suivante pourrait être :</p>
        <div class="codeblock"><ul>
          <li><code>,,Suisse,Bern</code></li>
        </ul></div>
      &lt; <code>Suisse</code> &gt; serait alors ajouté comme enfant d'&lt; <code>Europe</code> &gt; et bien sûr &lt; <code>Bern</code> &gt; comme enfant de &lt; <code>Suisse</code> &gt;.
      <p>De la même façon, les lignes ci-dessus peuvent être simplifiées en :</p>
        <div class="codeblock"><ul>
          <li><code>Monde, Asie, Japon, Tokyo</code></li>
          <li><code>,, Corée, Séoul</code></li>
          <li><code>Monde, Europe, France, Paris</code></li>
        </ul></div>
      Les lignes complètes, avec un seul terme ou partielles peuvent être mélangées, mais l'ordre est pris en compte deux lignes par deux, sauf lorsque toutes les lignes sont complètes. Dans cet exemple, si les cinquième et sixième lignes sont interverties, &lt; <code>Séoul</code> &gt; deviendrait un enfant de &lt; <code>Japon</code> &gt;.
  <h4 id="polyhierarchy"><a href="#contents">5. Structure polyhiérarchique</a></h4>
    <p>Cette option permet de créer une structure polyhiérarchique telle qu'une généalogie.<br />
    Le format est le même que le précédent : chaque terme est l'enfant du précédent : parent, enfant, petit-enfant... et ainsi de suite.<br />
    Cependant, quatre points différent. Premièrement, le premier élément ne doit pas forcément être une racine. Deuxièmement, les doublons sont toujours fusionnés, sauf lorsque l'un est parent direct de l'autre, ceci étant interdit dans Drupal. De ce fait, dans le cas d'un vocabulaire monohierarchique sans doublons non-direct, comme l'exemple géographique ci-dessus, le résultat est le même qu'avec l'option précédente. Troisièmement, les lignes peuvent également être partielles, mais dans certains cas de doublons, le résultat sera différent. Enfin, la polyhierarchie peut être récursive.<br />
    Par exemple, des lignes peuvent être :</p>
      <div class="codeblock"><ul>
        <li><code>Grand-Mère, Mère, Fille</code></li>
        <li><code>Grand-Père, Mère, Fils</code></li>
        <li><code>Grand-Mère 2, Père, Fille</code></li>
        <li><code>Grand-Père 2, Père, Fils</code></li>
        <li><code>            ,     , Fils 2</code></li>
        <li><code>            , Oncle</code></li>
        <li><code>Grand-Mère 2, Oncle</code></li>
        <li><code>Père, Fils 3</code></li>
      </ul></div>
  <h4 id="parents"><a href="#contents">6. Parents de premier niveau</a></h4>
    <p>Cette option permet d'importer un vocabulaire dans lequel les termes peuvent avoir plusieurs parents, comme dans une généalogie (polyhierarchy).<br />
    Le premier élément est importé en tant que terme et les suivants en tant que parents de premier niveau du terme. Par exemple, des lignes peuvent être :</p>
      <div class="codeblock"><ul>
        <li><code>Fille, Mère, Père</code></li>
        <li><code>Fils, Mère, Père</code></li>
        <li><code>Fils 2, Père</code></li>
        <li><code>Fils 3, Père</code></li>
        <li><code>Mère, Grand-Mère, Grand-Père</code></li>
        <li><code>Père, Grand-Mère 2, Grand-Père 2</code></li>
        <li><code>Oncle, Grand-Mère 2, Grand-Père 2</code></li>
      </ul></div>
  <h4 id="children"><a href="#contents">7. Enfants de premier niveau</a></h4>
    <p>Cette option permet d'importer un vocabulaire dans lequel les termes peuvent avoir plusieurs parents, comme dans une généalogie (polyhierarchy).<br />
    Le premier élément est importé en tant que terme et les suivants en tant qu'enfants de premier niveau du terme. Par exemple, des lignes peuvent être :</p>
      <div class="codeblock"><ul>
        <li><code>Mère, Fille, Fils</code></li>
        <li><code>Père, Fille, Fils, Fils 2, Fils 3</code></li>
        <li><code>Grand-Mère, Mère</code></li>
        <li><code>Grand-Père, Mère</code></li>
        <li><code>Grand-Mère 2, Père, Oncle</code></li>
        <li><code>Grand-Père 2, Père, Oncle</code></li>
      </ul></div>
      Les trois exemples précédents correspondent au même vocabulaire lorsque l'option des termes existants est "mettre à jour et fusionner", ce qui est l'option recommandée.
  <h4 id="relations"><a href="#contents">8. Termes associés (termes connexes)</a></h4>
    <p>Attention : sous Drupal 7, les termes associés ont été supprimés et remplacés par les champs (fields). Cette option est donc disponible seulement avec Drupal 6. Pour disposer de la même fonctionnalité, il faut créer un champ 'relations'.<br />
    Cette option permet de créer des liens entre les termes comme les "voir aussi" dans une encyclopédie. La deuxième colonne et les suivantes seront importées en tant que termes connexes du terme de la première colonne. Par exemple, une ligne pourrait être :</p>
      <div class="codeblock"><ul>
        <li><code>Baobab, Madagascar, Fantôme</code></li>
      </ul></div>
    Ainsi, &lt; <code>Baobab</code> &gt; renverra à &lt; <code>Madagascar</code> &gt; et à &lt; <code>Fantôme</code> &gt;. Une option permet de créer également les sous-relations, en l'occurrence entre &lt; <code>Madagascar</code> &gt; et &lt; <code>Fantôme</code> &gt; (voir ci-dessous).
  <h4 id="synonyms"><a href="#contents">12. Termes synonymes</a></h4>
    <p>La deuxième colonne et les suivantes seront importées comme termes synonymes du terme de la première colonne. Exemple :</p>
      <div class="codeblock"><ul>
        <li><code>"Royaume Uni","Grande-Bretagne","Angleterre"</code></li>
      </ul></div>
  <h4 id="fields"><a href="#contents">9. Définitions complètes de termes</a></h4>
    <p>Cette option permet d'importer des définitions complètes de termes.Le format est : nom, poids, description, liste des synonymes éventuels. Exemple :</p>
      <div class="codeblock"><ul>
        <li><code>Rue, 1, "Une voie urbaine", Avenue, Route</code></li>
      </ul></div>
    Un autre choix, <a href="#def_links"><code>Champs et liens des termes</code></a>, permet d'importer non seulement les définitions, mais également les liens.
  <h4 id="descriptions"><a href="#contents">10. Descriptions des termes</a></h4>
    <p>La seconde colonne sera importée comme description du terme défini dans la première colonne. Exemple :</p>
      <div class="codeblock"><ul>
        <li><code>"Baobab","Un arbre africain"</code></li>
      </ul></div>
  <h4 id="weights"><a href="#contents">11. Poids des termes</a></h4>
    <p>La seconde colonne sera importée comme poids du terme défini dans la première colonne. Exemple :</p>
      <div class="codeblock"><ul>
        <li><code>Baobab, 3</code></li>
      </ul></div>
  <h4 id="taxonomy_manager"><a href="#contents">13. Taxonomy manager</a></h4>
    <p>Ce format est utilisé par <a href="http://drupal.org/project/taxonomy_manager" title="Module Taxonomy manager">Taxonomy manager</a> pour exporter des vocabulaires. Les colonnes sont : identifiant du vocabulaire, identifiant du terme, nom du terme, description du terme, id du parent 1 de premier niveau, ..., id du parent n de premier niveau. Example:</p>
      <div class="codeblock"><ul>
        <li><code>, 1, "Île-de-France", "Main region"</code></li>
        <li><code>, 2, "Paris", "Capital of France", 1</code></li>
      </ul></div>
    <p>Dans ce format, l'ordre des lignes est important : il est impossible d'attacher un parent à un terme si ce parent n'a pas été importé dans une ligne précédente.</p><br />
    <p>Lorsqu'un vocabulaire est importé dans un vocabulaire existant, seule l'option "ignorer et créer" peut être utilisée.</p>
  <h4 id="geotaxonomy"><a href="#contents">14. Geotaxonomy</a></h4>
    <p>Importe et exporte des termes de <a href="http://drupal.org/project/geotaxonomy"  title="Module Geotaxonomy">géotaxinomie</a>.</p>
    <p>Format</p>
    <div class="codeblock"><ul>
    <code>nom, latitude, longitude, parent, frontières haut, droite, bas, gauche</code>
    </ul></div>
    <p>Exemple</p>
    <div class="codeblock"><ul>
      <li><code>"Paris", 48.833, 2.333, "Île-de-France"</code></li>
      <li><code>"Île-de-France", 47, 2, "France"</code></li>
    </ul></div>
    <p>Seuls le nom, la latitude et la longitude sont nécessaires. Indiquer un parent est recommandé afin d'aboutir à une structure hiérarchique.</p>
    <p>Les identifiants peuvent être des nombres ou non, par exemple le nom du terme lui-même, mais ils doivent être uniques pour éviter les termes doublons. Seuls les doublons ont besoin d'un identifiant.</p>

<h3 id="import"><a href="#contents">2. Import</a></h3>
  <p>Taxonomy CSV permet d'importer des structures et des propriêtés de termes.</p>
  <h4 id="import_content"><a href="#contents">1. Que voulez-vous importer (contenu de la source) ?</a></h4>
    <p>La source peut être configurée avec le premier groupe d'options. Le plus souvent, la première colonne indique le nom du terme importé. Vous pouvez indiquer comment les colonnes suivantes doivent être importées en choisissant le <a href='#formats'>format</a>.</p>

  <h4 id="source"><a href="#contents">2. Où se trouvent les termes à importer ?</a></h4>
    <p>Vous pouvez importez les termes à partir d'un fichier ou avec une zone de texte. Sélectionnez simplement votre choix. L'adresse du fichier peut être un chemin local ou une url.</p>
    <p>Les paramètres avancés permettent de choisir le séparateur et le délimiteur de champ.</p>

  <h4 id="file_format"><a href="#contents">3. Quel est le format de la source ?</a></h4>
    <p>L'import doit être formaté au format utf-8, de préférence sans la marque d'ordre des octets.</p>
    <p>Ce groupe d'options permet de définir les séparateur et délimiteur  spécifiques des champs ainsi qu'une format de langue tel que 'fr_FR.utf8'.</p>
    <ul>
      <li>
        Le séparateur (virgule "<strong><code>,</code></strong>" par défaut, point-virgule "<strong><code>;</code></strong>" ou tabulation) entre les termes peut être choisi dans les paramètres avancés du deuxième groupe d'options. Le séparateur peut également être personnalisé. Il ne peut avoir qu'un seul caractère. Exemple avec le séparateur &lt; <strong><code>¤</code></strong> &gt; :<br />
        <div class="codeblock"><ul>
          <li><code>terme 1¤Ce champ contient des virgules, un point-virgule (;), des guillemets (") et une tabulation, mais il est correctement importé.</code></li>
        </ul></div>
      </li>
      <li>
        Il est conseillé de protéger les termes par des caractères de délimitation tels que les guillemets (<strong><code>"</code></strong>), notamment s'ils contiennent des caractères non-ASCII ou si les éléments importés, en particulier les descriptions, contiennent le séparateur choisi. Exemple:<br />
        <div class="codeblock"><ul>
          <li><code>"terme 1","Ce champ contient une virgule, mais il sera correctement importé."</code></li>
        </ul></div>
        Vous pouvez choisir un caractère de délimitation personalisé dans les paramètres avancés du deuxième groupe d'options. Il ne peut avoir qu'un seul caractère ou être nul. Les guillemets (<strong><code>"</code></strong>) sont automatiquement pris en compte.
      </li>
      <li>
        Attention : quand vous exportez un vocabulaire, le séparateur et le délimiteur ne doivent pas être utilisés dans les définitions des termes, notamment dans les descriptions. L'export s'arrêtera en cas de problème.
      </li>
    </ul>

  <h4 id="destination"><a href="#contents">4. Quel est le vocabulaire de destination ?</a></h4>
    <p>Vous pouvez importer vos termes dans un vocabulaire existant ou en créer un nouveau. Vous pouvez également importer vos termes dans une copie d'un vocabulaire existant.</p>
    <p>Quand vous voulez importer une nouvelle liste dans une taxinomie existante, il est recommandé de procéder en trois étapes de façon à garantir la qualité de l'importation.</p>
    <ul>
      <li>D'abord, vérifier le fichier d'importation en choisissant l'option &lt; <em>Autocréer un nouveau vocabulaire</em> &gt;. Répéter cette étape tant qu'il y a des avertissements et des messages.</li>
      <li>Ensuite, vérifier la fusion entre les nouveaux termes et les termes existants avec l'option &lt; <em>Dupliquer un vocabulaire existant</em> &gt;. Ce choix crée une copie de votre vocabulaire cible et y importe les termes. Les attachements aux nœuds ne sont pas copiés.</li>
      <li>Enfin, vous pouvez importer votre fichier dans le bon vocabulaire avec l'option &lt; <em>Importer dans un vocabulaire existant</em> &gt;. Cela permet de conserver les liens entre les termes et les nœuds.</li>
    </ul>
    <p>Si vous voulez seulement créer un nouveau vocabulaire, le premier choix est suffisant, à moins que vous avez plusieurs fichiers pour un vocabulaire.</p>
    <p>Quand le contenu de la source est <code>Définitions complètes de termes et liens</code>, la destination est déterminée par la source. Si la troisième colonne est un identifiant, un nouveau vocabulaire sera créé. S'il s'agit d'un nom, un vocabulaire sera créé s'il n'existe pas. Si elle est vide ou égale à zéro, le vocabulaire sera autocréé, dupliqué ou utilisé selon l'option. Il en est de même pour les termes associés.</p>

  <h4 id="import_options"><a href="#contents">5. Quand un terme existe, que faire avec ?</a></h4>
    <p>La destination peut être configurée avec le second groupe d'options. Vous pouvez définir ce que deviendront les termes existants. Jusqu'à quatre choix sont possibles selon le contenu de la source :</p>
    <ul>
      <li>
        <h5>Mettre les termes à jour et fusionner avec l'existant</h5>
        <p>
          Met à jour les termes existants lorsque le nom correspond avec celui des termes importés et fusionne les descriptions, parents, synonymes et termes connexes existants. Les doublons sont supprimés. Ce choix est conseillé si vous voulez conserver un vocabulaire et si vous avez des descriptions, des parents, des synonymes et des termes connexes que vous ne voulez pas perdre.
        </p>
      </li>
      <li>
        <h5>Mettre les termes à jour et remplacer l'existant</h5>
        <p>
          Met à jour les termes existants si le nom correspond à celui des termes importés, mais remplace les descriptions, les parents, les termes synonymes et connexes existants. Choisissez cette option si vous voulez créer proprement un nouveau vocabulaire sans perdre les termes existants.
          <br />
          Attention : s'il n'y a pas de description, parent, synonyme ou terme connexe, c'est-à-dire si la ligne contient seulement un terme dans la première colonne, cela supprimera l'existant.
        </p>
      </li>
      <li>
        <h5>Ignorer les termes existants et en créer de nouveaux</h5>
        <p>
          Conserve les termes existants tels qu'ils sont et crée un nouveau terme pour le terme de la première colonne.
          <br />
          Attention : cela peut créer des doublons. Cette option est conseillée seulement si vous êtes sûr que la taxinomie importée contient seulement des termes nouveaux ou si votre vocabulaire autorise les parents multiples.
        </p>
      </li>
      <li>
        <h5>Ignorer tous les termes et en créer de nouveaux</h5>
        <p>
          Crée un nouveau terme pour chaque terme de la ligne.
        </p>
      </li>
    </ul>

  <h4 id="info_process"><a href="#contents">6. Infos sur le traitement et import de grosses taxinomies</a></h4>
    <p>Ce groupe d'options permet de choisir les informations affichés à la fin du traitement.</p>
    <p>Pour importer une taxinomie de taille importante (à partir de 1000 ou 10000 lignes selon le serveur) lorsqu'il n'est pas possible de modifier les temps et mémoire maximum autorisés par le serveur, il est d'abord conseillé de désactiver certains modules utilisant les taxinomies tels que "pathauto" avant l'importation. Les paramètres ne sont pas perdus lorsqu'un module est désactivé - et non désinstallé -.<br />
    Ensuite, vous pouvez utiliser les paramètres avancés suivants (dans les groupes d'options).</p>
    <ul>
      <li>
        <h5>Réduire le niveau d'informations</h5>
        <p>Les stats, termes, remarques et avertissements affichés à la fin du traitement consomment de la mémoire. Vous pouvez donc les réduire ou les désactiver.</p>
      </li>
      <li>
        <h5>Indiquer manuellement le niveau hiérarchique du vocabulaire</h5>
        <p>Déterminer le niveau hiérarchique d'un vocabulaire nécessite beaucoup de mémoire. Cette option permet donc de le définir manuellement sans vérification.</p>
      </li>
      <li>
        <h5>Désactiver la vérification des lignes</h5>
        <p>Si vous êtes sûr que le vocabulaire à importer est correctement formaté (utf8, ordre des éléments...), vous pouvez désactiver la vérification. Cette option augmente la vitesse d'importation de 5%.</p>
    </li>
  </ul>
  Attention: la fonction "Lister les termes" par défaut de Drupal peut engendrer des erreurs de mémoire avec les taxinomies de taille importante. Dans ce cas, il est préférable d'utiliser un autre gestionnaire de taxinomies tel que <a href="http://drupal.org/project/taxonomy_manager" title="Module Taxonomy manager">Taxonomy manager</a>.

<h3 id="export"><a href="#contents">3. Export</a></h3>
  <p>Taxonomy CSV permet d'exporter les structures et les propriétés des termes d'un ou plusieurs vocabulaires.</p>
  <p>Choisissez simplement ce que vous voulez exporter (cf. <a href='#formats'>formats</a>) et comment exporter. Certains formats ne sont pas disponibles.</p>

<h3 id="import_api"><a href="#contents">4. Taxonomy csv import API</a></h3>
  <p>Ce module peut être utilisé comme une API. Vous pouvez utiliser le module complet comme dépendance ou directement dans votre module. L'import s'effectue ainsi :</p>
  <div class="codeblock"><code>
    $csv_lines = '"Europe", "France", "Paris"';<br />
    $csv_lines .=  "\n". ',, "Lyon"';<br />
    $csv_lines .=  "\n". ',"Royaume-Uni", "Lyon"';<br />
    $csv_lines .=  "\n". ',"Portugal", "Lisbonne"';<br />
    $result = taxonomy_csv_import(<br />
    &nbsp;&nbsp;array(<br />
    &nbsp;&nbsp;&nbsp;&nbsp;'text'           => $csv_lines,<br />
    &nbsp;&nbsp;&nbsp;&nbsp;'import_format'  => 'tree_structure',<br />
    &nbsp;&nbsp;&nbsp;&nbsp;'existing_items' => 'update_replace',<br />
    ));<br />
  </code></div>
  <p>Ou comme cela (import au niveau d'une ligne) :</p>
  <div class="codeblock"><code>
    $result = taxonomy_csv_line_import(<br />
    &nbsp;&nbsp;array("Europe", "France", "Paris"),<br />
    &nbsp;&nbsp;array(<br />
    &nbsp;&nbsp;&nbsp;&nbsp;'import_format' => 'tree_structure',<br />
    &nbsp;&nbsp;&nbsp;&nbsp;'vocabulary_id' => 2,<br />
    &nbsp;&nbsp;&nbsp;&nbsp;'existing_items' => 'update_replace',<br />
    ));<br />
  </code></div>
  <p>Les formats d'importation sont présentés dans les commentaires et <a href='#formats'>ci-dessus</a>. Certains peuvent être indisponibles.</p>
  <p>Des infos complémentaires sont disponibles dans <a href="http://drupalcode.org/viewvc/drupal/contributions/modules/taxonomy_csv/TECHINFO.txt?view=co">TECHINFO.txt</a>.</p>

<h3 id="advanced_options"><a href="#contents">5. Paramètres avancés et conseils</a></h3>
  <h4 id="permissions"><a href="#contents">1. Permissions</a></h4>
    <p>Pour importer des termes, l'utilisateur doit avoir les permissions générales de <a href="?q=admin/user/permissions#module-taxonomy" title="configure taxonomy permissions">taxinomies (Drupal 6)</a> ou <a href="?q=admin/people/permissions#module-taxonomy" title="configure taxonomy permissions">taxinomies (Drupal 7)</a>. Ces droits d'accès sont souvent associés aux permissions pour accéder aux pages d'administration.</p>

  <h4 id="other_hints"><a href="#contents">2. Autres conseils</a></h4>
    <ul>
      <li>
        Il est conseillé d'utiliser un fichier encodé au format utf8 pour éviter les problèmes avec les termes non-ASCII.
      </li>
      <li>
        Si vous voulez importer à la fois des termes enfants, des descriptions, des poids, des termes synonymes et connexes et une structure hiérarchique, vous devez commencer par le fichier contenant la structure hiérarchique des parents et des enfants. Ainsi, vous devez d'abord importer le fichier des termes enfants en choisissant l'option <em>Vocabulaire plat</em>, <em>Structure</em>, <em>Parents</em> ou <em>Enfants</em>. Ensuite, vous pouvez importer les autres fichiers en choisissant l'option adéquate et l'une ou l'autre option <em>Mettre à jour...</em>
      </li>
      <li>
        Attention : si 1) le choix de la source <strong>n'est pas</strong> <em>"Ignorer"</em> les colonnes supplémentaires, 2) le fichier ou une ligne dans le fichier contient seulement une colonne et 3) vous choisissez <em>"Mettre à jour et remplacer"</em>, le processus d'importation deviendra un processus de suppression des éléments correspondants (les termes de la première colonne sont toujours conservés ou importés).
      </li>
      <li>
        Des problèmes de mémoire ou de compatibilité ont été signalés pour certains modules tels que <em>Pathauto</em>, <em>taxonomy_vtn</em> and <em>taxonomynode</em> (see <a href="http://drupal.org/node/495548">#495548</a>, <a href="http://drupal.org/node/447852">#447852</a> et <a href="http://drupal.org/node/540916">#540916</a>). Il est conseillé d'augmenter temporairement la mémoire du serveur et de php (aucun problème n'a été signalé avec 256 Mo) ou de désactiver ces modules manuellement (les paramètres ne sont pas perdus lors d'une désactivation - et non une désinstallation -). Après l'importation, vous pouvez réduire la mémoire et réactiver les modules.
      </li>
    </ul>
<p>Un autre module Drupal permet également l'importation d'une taxinomie par le biais d'un fichier CSV, malgré son nom : <a href="http://drupal.org/project/taxonomy_xml" title="Module Taxonomy XML">taxonomy XML</a>. Son approche est différente. Il utilise un fichier unique conforme à la norme ISO 2788 sur les thésaurus, en l'occurrence un fichier CSV à trois colonnes : <code>terme, type de lien (relation, description, synonyme...), élément</code>, ou, pour les specialistes, <code>sujet, prédicat, objet</code>. Les champs supplémentaires sont traités comme le troisième. Pour Drupal 4.7 et Drupal 5, <a href="http://drupal.org/project/taxonomy_batch_operations" title="Module Taxonomy batch operations">taxonomy batch operations</a> peut également être utilisé. Vous pouvez donc choisir le module correspondant le mieux à vos besoins.</p>
<p>Pour l'exportation, vous pouvez utiliser également Taxonomy XML ou l'un des modules de sauvegardes. Taxonomy CSV est un outil plus spécialisé qui permet des paramètrages plus précis.</p>
<br />
</body>
</html>
